<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
      // 你从 API 收到一个产品列表（数组），需要将其转换为一个按 `category` 分类的对象，以便快速查找特定类别的所有商品。你会如何实现？

      // ```javascript
      const products = [
        { id: 1, name: 'Laptop', category: 'Electronics' },
        { id: 2, name: 'T-Shirt', category: 'Apparel' },
        { id: 3, name: 'Phone', category: 'Electronics' },
        { id: 4, name: 'Jeans', category: 'Apparel' }
      ];

      // // 期望输出:
      // // {
      // //   'Electronics': [ { id: 1, name: 'Laptop', ... }, { id: 3, name: 'Phone', ... } ],
      // //   'Apparel': [ { id: 2, name: 'T-Shirt', ... }, { id: 4, name: 'Jeans', ... } ]
      // // }
      // ```

      function getCategory(products) {
        let obj = {};
        products.forEach(item => {
          if (!obj[item.category]) {
            obj[item.category] = [item]
          } else {
            obj[item.category] = [...obj[item.category], item]
          }
        })
        console.log(obj);
      }
      getCategory(products)





   
      // 在发送 API 请求时，你经常需要将一个包含查询参数的对象转换为 URL 查询字符串。你会如何实现？

      // ```javascript
      // const params = {
      //   userId: '123',
      //   limit: 10,
      //   query: 'JavaScript Tips'
      // };

      // // 期望输出 (注意 URL 编码):
      // // "userId=123&limit=10&query=JavaScript%20Tips"

      const params = {
        userId: '123',
        limit: 10,
        query: 'JavaScript Tips'
      };
      function getUrl(params) {
        // ["userId", "limit", "query"]
        // ["userId=123", "limit=10", "query=JavaScript%20Tips"]
        return Object.keys(params).map(item => {
          return item + "=" + params[item]
        }).join("&")
      }
      getUrl(params)
    






      // 4. **场景：格式化 API 响应**
      // 你收到的 API 响应是一个对象，其键是日期，值是当天的销售额。你需要将其转换为一个对象数组，每个对象包含 `date` 和 `sales` 两个属性，以便在图表中显示。

      // ```javascript
      const salesData = {
        '2023-01-01': 500,
        '2023-01-02': 750,
        '2023-01-03': 600
      };

      // // 期望输出:
      // // [
      // //   { date: '2023-01-01', sales: 500 },
      // //   { date: '2023-01-02', sales: 750 },
      // //   { date: '2023-01-03', sales: 600 }
      // // ]

      function toArray(salesData) {
        // let newArr = [];
        // for (const key in salesData) {
        //   newArr.push({ date: key, sales: salesData[key] })
        // }
        // console.log(newArr);

        // const keyArr = Object.keys(salesData);
        // console.log(keyArr); // ['2023-01-01', '2023-01-02', '2023-01-03']
        // return Object.keys(salesData).map(item => {
        //   return { date: item, sales: salesData[item] }
        // })

        // [['2023-01-01', 500], ['2023-01-02', 750], ['2023-01-03', 600]]
        // return Object.entries(salesData).map(item => {
        //   return { date: item[0], sales: item[1] }
        // })

        return Object.entries(salesData).map(([date, sales]) => ({ date, sales }))
      }
      console.log(toArray(salesData))
  </script>
</body>
</html>